کار با خاصیت Timer در محیط برنامه نویسی VBA در اکسس
خاصیت Timer در اکسس یکی از قابلیت های مهم و کاربردی در برنامه نویسی می باشد که امروز می خواهیم راجع به آن با همدیگر صحبت کنیم.
این که خاصیت تایمر چیست ؟
چه کاربردی دارد ؟ و در کجاها و به چه نحو می توانیم از آن بهره ببریم موضوعی است که در این مطلب به آن خواهیم پرداخت .
بنابراین تا انتهای این مطلب همراه باشید تا به کلیه این پرسش ها پاسخ بدهیم و برای درک بهتر مطلب نیز با هم یک پروژه را با هم اجرا کنیم .
آشنایی با خاصیت Timer در اکسس و برنامه نویسی VBA
timer یا به فارسی همان تایمر همانطور که از ترجمه و معنی ان هم بر می آید در واقع یک زمان سنج است .
این زمان سنج و توابع مربوط به آن از قبل در داخل زبان برنامه نویسی VBA تعریف شده اند .
تنها کاری که ما باید بکنیم فراخوانی این خاصیت و انجام تنظیمات مربوط به آن است .
اما اینجا در سوال پیش می آید :
۱٫ اینکه چه موقع باید از این خاصیت استفاده کنیم .
۲٫ چگونه باید این خاصیت را فراخوانی کرده و تنظیمات مربوط به آن را چگونه باید انجام دهیم ؟
برای شروع کار به سراغ پاسخ مربوط به سال اول می رویم .
اینکه چه موقع باید از این خاصیت استفاده کنیم ؟
ما معمولا وقتی از این خاصیت استفاده می کنیم که بخواهیم کار خاصی را در یک بازه زمانی خاص انجام دهیم .
مثلا فرض کنید که یک فرمی داریم که این فرم برای کاربر نمایش داده می شود .
حالا می خواهیم بعد از ۲ دقیقه که فرم به کاربر نمایش داده شود بطور خودکار یک پیام برای کاربر به نمایش بگذاریم .
خوب در اینجا از خاصیت تایمر استفاده می کنیم .
در واقع با استفاده از این تایمر به برنامه می گوییم که به محض شروع به کار فرم خاصیت تایمر نیز شروع به زمان سنجی بکند .
سپس به محض اینکه این زمان به عدد ۲ دقیقه رسید بطور خودکار پیغام ما را برای کاربر به نمایش بگذارد .
بعدا در ادامه همین مطلب این مثالی را که ذکر کردیم را در قالب یک پروژه با هم اجرا خواهیم کرد .
اما قبل از آن باید به سراغ پرسش دوم خود برویم و پاسخ آن را با هم بررسی کنیم .
چگونگی فراخوانی و تنظیمات مربوط به خاصیت تایمر
اول این نکته را باید بدانیم که خاصیت تایمر فقط مربوط به شی فرم و یا گزارش است .
یعنی اگر شما یک فرم داشته باشید که و این فرم هم دارای اشیای مختلفی شامل دکمه ها ، تکس باکس ها و غیره باشد فقط خود فرم دارای خاصیت تایمر می باشد و سایر اشیا فاقد این خاصیت هستند .
اما برای دست یابی به خاصیت تایمر مربوط به یک فرم دو راه پیش رو داریم .
با هم هر دوی این راهها را مورد بررسی قرار می دهیم .
روش اول در دسترسی به خاصیت تایمر .
در این روش می توان از طریق کادر مربوط به property که در محیط طراحی یک فرم نمایش داده می شود به خاصیت تایمر دسترسی پیدا کرد .
بعنوان مثال به قرم زیر دقت کنید .
این فرم در نمای طراحی قرار دارد .
در همین محیط طراحی فرم در سربرگ Design بر روی گزینه property کلیک می کنیم تا کادر مربوط به آن نمایش داده شود .
اول کنترل می کنیم که در کمبو باکس مربوط به اشیا حتما شی فرم ما انتخاب شده باشد .
حالا از سربرگ Event می توانیم به پایین اسکرول کنیم تا به گزینه ای به نام On timer برسیم .
در زیر همین گزینه هم گزینه Timer interval وجود دارد .
مطلب مرتبط:مفهوم رکوردست در برنامه نویسی VBA
این دو گزینه با هم ارتباط تنگاتنگی دارند و هر دو را با هم باید تنظیم کنیم .
اما با هم بررسی کنیم که این دو مورد چه هستند و چه کاربردهایی دارند .
اول به سراغ گزینه on timer برویم .
با استفاده از این گزینه و کدهایی که در محیط برنامه نویسی در روال مربوط به این رویداد می نویسیم می توانیم تعیین کنیم که برنامه در فواصل زمانی معین چه کاری را برای ما انجام دهد .
این فاصله زمانی را در کجا تعیین می کنیم .
برای این کار باید از خاصیت timer interval استفاده کنیم .
همانگونه که در تصویر هم می بینید مقدار این عدد بطور پیشفرض صفر در نظر گرفته شده است .
اما اگر ما بخواهیم یک بازه زمانی برای آن تعریف کنیم می توانیم عدد مورد نظر خود را در اینجا ثبت کنیم .
اما در اینجا هم باید به یک نکته توجه کنید .
واحد زمانی در نظر گرفته شده برای این خاصیت بر حسب میلی ثانیه می باشد .
این یعنی چه ؟
یعنی اگر شما عدد ۱۰۰۰ را در کادر مربوط به خاصیت وارد کنید در واقع معادل یک ثانیه خواهد بود .
و این خود به این معنی خواهد بود که برنامه یک ثانیه به یک ثانیه شروع به سنجش زمان می کند .
و یا اگر عدد ۵۰۰ را وارد کنید یعنی هر یک ثانیه که در دنیای واقعی ما می گذارد در اکسس دو واحد زمانی می گذرد .
خوب از مجموعه این قضایا چطور می شود استفاده کنیم .
یک مطلب خواندنی در اکسس : قفل کردن فیلدها در اکسس با این کدها هر فیلدی را قفل کنید
یک مثال کاربردی برای استفاده از خاصیت تایمر در محیط اکسس .
اجازه دهید با هم یک مثال ساده را بررسی کنیم .
برای این کار از همان مثالی استفاده می کنیم که در چند خط بالاتر به آن اشاره کردیم .
می خواهیم کاری کنیم که ۲۰ ثانیه بعد از اینکه یک فرم برای کاربر به نمایش درآید یک کادر پیغام بطور خودکار به کاربر نمایش داده شود .
خوب برای این کار اول فرم خود را باز کرده و در داخل آن یک برچسب را قرار می دهیم .
در اینجا من یک برچسب با عنوان msglbl را ایجاد کرده ام .
متن مربوط به این برچسب را هم بصورت “شما برای تکمیل این فرم ۴۰ ثانیه دیگر مهلت دارید ” تنظیم کرده ام .
حالا باید به سراغ خاصیت یا بهتر از بگوییم رویداد On timer برویم و با استفاده از آیکون کناری این رویداد به محیط برنامه نویسی VBA برویم .
از این به بعد همه چیز در محیط VBA پیگیری خواهد شد .
می خواهیم چکار کنیم .
اول می خواهیم بگوییم که منتظر بماند تا ۲۰ ثانیه از شروع به کار فرم ما بگذرد .
بعد که به ثانیه ۲۰ رسید برچسب ما ر ا که حاوی پیغام مورد نظر است به کاربر نمایش دهد.
خوب حالا این دو تا مرحله را به زبان کد در می آوریم .
اول در رویداد On load فرم خود این قطعه کد را وارد می کنیم .
() Private Sub Form_Load Me.lblmsg.Visible = False Me.TimerInterval = 1000 End Sub
ما در خط اول از این کد تعیین کرده ایم که در ابتدای اجرای فرم ما برچسب دارای پیغام نمایش داده نشود .
در خط خط دوم هم خاصیت تایمر را برابر با ۱۰۰۰ قرار داده ایم .
حالا باید به سراغ این برویم که در ثانیه ۲۰ برچسب ما را به کاربر نمایش دهد .
برای این کار از رویداد On timer استفاده می کنیم و کدهای زیر را در آن وارد می کنیم .
()Private Sub Form_Timer me.timerinterval=me.timerinterval+1 If Me.TimerInterval = 1020 Then Me.lblmsg.Visible = True End If If Me.TimerInterval = 1060 Then DoCmd.Close End If End Sub
در اینجا ما از دو تا عبارت شرطی استفاده می کنیم .
در عبارت شرطی اول تعیین می کنیم که وقتی تایمر ما به عدد ۱۰۲۰ رسید برچسب ما به کاربر نمایش داده نشود .
در عبارت شرط دوم هم تعیین می کنیم که اگر تایمر ما به عدد ۱۰۶۰ رسید یعنی یک دقیقه بعد از نمایش فرم بطور خودکار فرم ما بسته شود .
این هم مثالی بود به از نحوه کار با خاصیت تایمر در اکسس.
برای مشاهده کلیپ های آموزشی برنامه نویسی می توانید به پیج ما در اینستاگرام مراجعه کنید .
مطالب زیر را حتما مطالعه کنید
ساخت برچسب در اکسس💥چطور آنها را ایجاد و مدیریت کنیم ؟
ریبون ها در اکسس💥از مخفی کردن تا مدیریت کردن آنها
چطوری متن ها و تصاویر را بصورت متحرک در اکسس نمایش بدهیم ؟
فرمت دهی نوشته ها در اکسس | کاربرد + مثالها
۵ ویژگی در فرم های اکسس که کمتر از آنها خبر داشتید .
باز کردن گزارش اکسس برای یک رکورد مشخص + نمونه فایل
6 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
آموزش خوب و کاربردی بود . بسیار متشکرم
با سلام و تشکر از شما
با تشکر از شما امیدوارم که باز هم ما را از نظرات خود بهره مند سازید
سلام یک سوالی برایم پیش آمده است که همیشه فرم های من بخاطر تایمر اینتروال چشمک میزنند به نظر شما من چکار کنم یعنی وقتی کدی در تایمر مینویسم label های فرم هر ثانیه یکبار چشمک می زنند. در جایی خواندم که این مشکل با دادن کنترل اختصاصی به هر لیبل حل می شود ولی نمیدانم منظور از کنترل اختصاصی چیست؟ و اینکه آیا می شود در هر فرم چندین تایمر اینتروال تعریف کرد؟
منتظر جواب shahramdindoost@gmail.com
سپاس گذار شما
سلام برای این کار می تونید از دستورهای شرطی استفاده کنید تا جلو پرش رو بگیرید
سلام. ممنون از پست خوبی که در زمینه آموزش تایمر گذاشتید. فقط ظاهرا در قطعه کد نوشته شده به جای ۲۰۰۰۰ نوشته شده ۱۰۲۰ و به جای ۶۰۰۰۰ نوشته شده ۱۰۶۰٫ چون ۲۰ ثانیه می شه ۲۰۰۰۰ میلی ثانیه، و ۶۰ ثانیه هم به همین شکل.